gint y_offset;
cairo_surface_t *surface;
guint uses_implicit : 1;
+ guint flushed : 1;
guint32 region_tag;
};
paint->x_offset = rect->x;
paint->y_offset = rect->y;
paint->uses_implicit = FALSE;
+ paint->flushed = FALSE;
paint->surface = NULL;
paint->pixmap =
gdk_pixmap_new (window,
return;
paint = impl_window->implicit_paint;
+ paint->flushed = TRUE;
region = gdk_region_copy (private->clip_region_with_children);
/* Don't flush active double buffers, as that may show partially done
* be to late to anti-expose now. Since this is merely an
* optimization we just avoid doing it at all in that case.
*/
- if (private->implicit_paint != NULL) /* didn't flush implicit paint */
+ if (private->implicit_paint != NULL &&
+ !private->implicit_paint->flushed)
{
impl_iface = GDK_WINDOW_IMPL_GET_IFACE (private->impl);
save_region = impl_iface->queue_antiexpose (window, update_area);